perm filename FIX.LSP[BNF,JRA]1 blob sn#005918 filedate 1972-10-25 generic text, type T, neo UTF8
00100	
00200	
00300	(DEFPROP LANG 
00400	 (NIL LANG
00500	      ISITM
00600	      ISITNM
00700	      MAKVAR
00800	      PREPREDLET
00900	      INFPREDLET
01000	      INFN
01100	      PREFN
01200	      VARNO
01300	      VARTBL
01400	      <PREPREDLET>
01500	      <INFPREDLET>
01600	      <PREFN>
01700	      <INFN>
01800	      <IVAR>
01900	      >PREPREDLET<
02000	      >INFPREDLET<
02100	      >PREFN<
02200	      >INFN<
02300	      >IVAR<) 
02400	VALUE)
02500	
02600	(DEFPROP ISITM 
02700	 (LAMBDA(L)
02800	  (LIST (QUOTE FUNCTION)
02900		(LIST (QUOTE LAMBDA)
03000	 	      NIL
03100		      (LIST (QUOTE PROG)
03200			    (QUOTE (Z))
03300			    (LIST (QUOTE RETURN)
03400				  (LIST (QUOTE COND)
03500					(LIST (LIST (QUOTE SETQ) (QUOTE Z) (LIST (QUOTE ISIT) (CADR L))) (QUOTE Z))
03600					(QUOTE (*NIL*)))))))) 
03700	MACRO)
03800	
03900	(DEFPROP ISITNM 
04000	 (LAMBDA(L)
04100	  (LIST (QUOTE FUNCTION)
04200		(LIST (QUOTE LAMBDA)
04300	 	      NIL
04400		      (LIST (QUOTE PROG)
04500			    (QUOTE (Z))
04600			    (LIST (QUOTE RETURN)
04700				  (LIST (QUOTE COND)
04800					(LIST (LIST (QUOTE SETQ) (QUOTE Z) (LIST (QUOTE ISITN) (CADR L))) (QUOTE Z))
04900					(QUOTE (*NIL*)))))))) 
05000	MACRO)
05100	
05200	(DEFPROP MAKVAR 
05300	 (LAMBDA(X)
05400	  (PROG (Z)
05500		(SETQ Z (ASSOC X VARTBL))
05600		(COND (Z (RETURN (CDR Z))))
05700		(SETQ VARTBL (CONS (CONS X (SETQ VARNO (ADD1 VARNO))) VARTBL))
05800		(RETURN VARNO))) 
05900	EXPR)
06000	
06100	(DEFPROP PREPREDLET 
06200	 (NIL P Q R E) 
06300	VALUE)
06400	
06500	(DEFPROP INFPREDLET 
06600	 (NIL ε < = ≤) 
06700	VALUE)
06800	
06900	(DEFPROP INFN 
07000	 (NIL ⊗ //) 
07100	VALUE)
07200	
07300	(DEFPROP PREFN 
07400	 (NIL 0 1 A B C F) 
07500	VALUE)
07600	
07700	(DEFPROP VARNO 
07800	 (NIL . 0) 
07900	VALUE)
08000	
08100	(DEFPROP <PREPREDLET> 
08200	 (LAMBDA NIL (NLRR (QUOTE PREPREDLET) (ISITM PREPREDLET))) 
08300	EXPR)
08400	
08500	(DEFPROP <INFPREDLET> 
08600	 (LAMBDA NIL (NLRR (QUOTE INFPREDLET) (ISITM INFPREDLET))) 
08700	EXPR)
08800	
08810	(DE <PREDLET>()(NLRR @PREDLET (ISITM (APPEND INFPREDLET PREPREDLET))))
08820	
08830	(DE <FNLET>()(NLRR @FNLET (ISITM(APPEND INFN PREFN))))
08832	
08834	(DE <OP>()(NLRR @OP (ISITNM CONNECT)))
08836	
08838	(DE <DECOP>()(NLRR @DECOP (ISITM DECOP)))
08840	
08850	(DE <AXIOMNAME>()(NLRR @AXIOMNAME(ISITM AXIOMLST)))
08860	
08900	(DEFPROP <PREFN> 
09000	 (LAMBDA NIL (NLRR (QUOTE PREFN) (ISITM PREFN))) 
09100	EXPR)
09200	
09300	(DEFPROP <INFN> 
09400	 (LAMBDA NIL (NLRR (QUOTE INFN) (ISITM INFN))) 
09500	EXPR)
09600	
09700	(DEFPROP <IVAR> 
09800	 (LAMBDA NIL
09900	  (NLRR (QUOTE IVAR)
10000		(FUNCTION (LAMBDA NIL (PROG (Z) (RETURN (COND ((SETQ Z (ISIT IVAR)) (MAKVAR Z)) (*NIL*)))))))) 
10100	EXPR)
10200	
10300	(DEFPROP >PREPREDLET< 
10400	 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((MEMQ (STK1) PREPREDLET) (STK1))))))) 
10500	EXPR)
10600	
10700	(DEFPROP >INFPREDLET< 
10800	 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((MEMQ (STK1) INFPREDLET) (STK1))))))) 
10900	EXPR)
11000	
11100	(DEFPROP >PREFN< 
11200	 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((MEMQ (STK1) PREFN) (STK1))))))) 
11300	EXPR)
11400	
11500	(DEFPROP >INFN< 
11600	 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((MEMQ (STK1) INFN) (STK1))))))) 
11700	EXPR)
11800	
11810	(DE >DECOP< (%N)(OUTRUL %N(FUNCTION(LAMBDA NIL(COND((MEMQ(STK1) DECOP)(STK1)))))))
11820	
11900	(DEFPROP >IVAR< 
12000	 (LAMBDA(%N)
12100	  (OUTRUL %N
12200		  (FUNCTION
12300		   (LAMBDA NIL
12400		    (COND ((NUMBERP (STK1)) (CDR (ASSOC (STK1) OUTVAR)))
12500			  ((EQ (STK1) (QUOTE LENGTH)) LENGTH)
12600			  ((EQ (STK1) (QUOTE DEPTH)) DEPTH)))))) 
12700	EXPR)
     

00100	
00200	
00300	(DEFPROP >TM< 
00400	 (LAMBDA(%N)
00500	  (OUTRUL %N
00600		  (FUNCTION
00700		   (LAMBDA NIL
00800		    (COND ((>IVAR< 1) (STK1))
00900			  ((AND (MATCH (QUOTE (*))) (>PREFN< 0)) (STK0))
01000			  ((AND (MATCH (QUOTE (* * *))) (>INFN< 2) (>TM< 1) (>TM1< 0))
01100			   (LIST (QUOTE (:CH /()) (STK1) (STK2) (STK0) (QUOTE (:CH /)))))
01200			  ((AND (MATCH (QUOTE (* . *))) (>PREFN< 1) (>ITMLST< 0)) (LIST (STK1) (STK0)))
01300			  ((>TM< 1) (LIST (QUOTE (:CH /()) (STK1) (QUOTE (:CH /)))))))))) 
01400	EXPR)
     

00100	
00200	
00300	(DEFPROP >AND1< 
00400	 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((EQ (QUOTE AND) (STK1)) (QUOTE (:CH ∧)))))))) 
00500	EXPR)
00600	
00700	(DEFPROP >OR1< 
00800	 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((EQ (QUOTE OR) (STK1)) (QUOTE (:CH ∨)))))))) 
00900	EXPR)
01000	
01100	(DEFPROP >NOT1< 
01200	 (LAMBDA (%N) (OUTRUL %N (FUNCTION (LAMBDA NIL (COND ((EQ (QUOTE NOT) (STK1)) (QUOTE (:CH ¬)))))))) 
01300	EXPR)
01400	(DE >EQUIV1< (%N)(OUTRUL %N(FUNCTION(LAMBDA NIL(COND((EQ @EQUIV (STK1)) @(:CH ≡))))))) 
01500	(DE >IMP1<  (%N)(OUTRUL %N(FUNCTION(LAMBDA NIL(COND((EQ @IMP (STK1)) @(:CH ⊃))))))) 
01600	(DEFPROP >QFF< 
01700	 (LAMBDA(%N)
01800	  (OUTRUL %N
01900		  (FUNCTION
02000		   (LAMBDA NIL
02100		    (COND ((EQ (QUOTE FA) (STK1)) (QUOTE (:CH ∀))) ((EQ (QUOTE TE) (STK1)) (QUOTE (:CH ∃)))))))) 
02200	EXPR)
02300	
02400	
02500	
02600	
02700	
02800	(DEFPROP GET1 
02900	 (LAMBDA (X L) (COND ((NUMBERP X) NIL) (T (GET X L)))) 
03000	EXPR)
03100	
03200	(DEFPROP SPACING 
03300	 (LAMBDA(OLD NEW)
03400	  (PROG2 (SETQ LAST NEW)
03500		 (CDR (SASSOC NEW (GET1 OLD (QUOTE SPACING)) (FUNCTION (LAMBDA NIL (QUOTE (NIL . 0)))))))) 
03600	EXPR)
03700	
03800	(DEFPROP CONNECT 
03900	 (NIL ; /) /( /. /, ≡ ⊃ → ↔ ∨ ∧ ∀ ∃ ¬ &) 
04000	VALUE)
04100	
04200	(DEFPROP RESERVEDWORDS 
04300	 (NIL IMP EQUIV  AND NOT OR FA TE) 
04400	VALUE)
     

00100	
00200	
00300	(DEFPROP DOPRINT 
00400	 (LAMBDA(L)
00500	  (COND ((ATOM L) (SPACES LAST (QUOTE >ATOM<)) (PRINC L))
00600		((EQ (CAR L) (QUOTE :CH)) (SPACES LAST (CADR L)) (PRINC (CADR L)))
00700		((EQ (CAR L) (QUOTE %IN)))
00800		(T (MAPC (FUNCTION DOPRINT) (CDR L))))) 
00900	EXPR)